# 《DeepSeek RAG 知识库》第5节:Ollama RAG 知识库上传、解析和验证
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
以大模型向量存储的方式,提交本地文件到知识库。并在 AI 对话中增强检索知识库符合 AI 对话内容的资料,合并提交问题。
# 二、技术方案
以 Spring AI 提供的向量模型处理框架,将上传文件以 TikaDocumentReader 方式进行解析,再通过 TokenTextSplitter 拆分文件。完成这些操作后,在遍历文档添加标记。标记的作用是为了可以区分不同的知识库内容。完成这些动作后,把这些拆解并打标的文件存储到 postgresql 向量库中。
本技术方案旨在利用 Spring AI 提供的向量模型处理框架,对上传的文件进行解析、拆分、标记,并将处理后的数据存储到 PostgreSQL 向量库中。通过这一流程,可以实现对文件内容的高效管理和检索,特别是在需要区分不同知识库内容的场景下。
# 1. 技术组件
- Spring AI: 提供向量模型处理框架,支持文件的解析、拆分和向量化操作。
- TikaDocumentReader: 用于解析上传的文件,支持多种文件格式(如 MD、TXT、SQL 等)。
- TokenTextSplitter: 用于将解析后的文本内容拆分为更小的片段,便于后续处理和存储。
- PostgreSQL 向量库: 用于存储处理后的文本向量数据,支持高效的相似性搜索和检索。
# 2. 方案流程
# 2.1 文件上传与解析
- 文件上传: 用户通过前端界面或 API 上传文件,文件可以是多种格式(如 MD、TXT、SQL 等)。
- 文件解析: 使用
TikaDocumentReader
对上传的文件进行解析,提取出文本内容。TikaDocumentReader
能够处理多种文件格式,并提取出结构化的文本数据。